﻿#Region "Copyright"

' Copyright 2007 Ben Reichelt - http://benreichelt.net
' 
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
' 
'     http://www.apache.org/licenses/LICENSE-2.0
' 
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.


#End Region

Imports NUnit.Framework
Imports SqlPlastic
Imports Rhino.Mocks

<TestFixture()> _
Public Class CodeGenTests

    Private repo As MockRepository

    <SetUp()> _
    Public Sub Setup()
        repo = New MockRepository
    End Sub

    <Test()> _
    Public Sub Create()

        Dim app As New AppContext
        app.Logger = New ConsoleLogger
        Dim fs As IFileSystem = repo.CreateMock(Of IFileSystem)()
        Dim tasks As New CustomTasks(app, fs)
        Assert.IsNotNull(tasks)

    End Sub

    <Test()> _
    Public Sub GetFilesDirDoesntExist()

        Dim app As New AppContext
        app.Logger = New ConsoleLogger
        Dim fs As IFileSystem = repo.CreateMock(Of IFileSystem)()
        Dim tasks As New CustomTasks(app, fs)
        Expect.Call(fs.DirectoryExists("CustomTasks")).Return(False)
        fs.CreateDirectory(Nothing)
        LastCall.IgnoreArguments()
        repo.ReplayAll()
        tasks.GetCustomCodeFiles()
        repo.VerifyAll()

    End Sub


    <Test()> _
    Public Sub GetFilesDirExists()

        Dim app As New AppContext
        Dim fs As IFileSystem = repo.CreateMock(Of IFileSystem)()
        Dim tasks As New CustomTasks(app, fs)
        Expect.Call(fs.DirectoryExists(Nothing)).IgnoreArguments().Return(True)
        Expect.Call(fs.GetFilesInDirectory("CustomTasks", "*.cs")).Return(Nothing)
        repo.ReplayAll()
        tasks.GetCustomCodeFiles()
        repo.VerifyAll()

    End Sub



End Class
